-
Notifications
You must be signed in to change notification settings - Fork 2.8k
execute-type param addition in GkeCodeExecutor #4111
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Summary of ChangesHello @SHRUTI6991, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request enhances the Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces a new execution path in GkeCodeExecutor to use agentic-sandbox, controlled by a new executor_type parameter. The changes are logical and the addition of unit tests for the new branching logic is great. My feedback focuses on improving robustness, configurability, and code quality. Key suggestions include pinning the new git dependency for build stability, making the sandbox template name configurable, ensuring consistent logger usage, fixing a potential type error, and making the executor type selection logic more robust.
vicentefb
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The separation between the Job and Sandbox logic is clean. I have just a few comments.
|
Hi @SHRUTI6991, Thank you for your contribution! We appreciate you taking the time to submit this pull request. |
|
/gemini review |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request successfully introduces a new sandbox execution mode to the GkeCodeExecutor, enhancing its capabilities to execute Python code using the agentic_sandbox client. The changes include adding the necessary dependency, updating the class with new configuration options, and refactoring the execution logic to route requests based on the chosen executor type. The addition of comprehensive unit tests for the new functionality, including error handling and execution routing, is commendable and ensures the reliability of the new feature. Overall, the changes are well-implemented and significantly improve the flexibility of the GkeCodeExecutor.
| # go/keep-sorted start | ||
| "PyYAML>=6.0.2, <7.0.0", # For APIHubToolset. | ||
| "aiosqlite>=0.21.0", # For SQLite database | ||
| "agentic_sandbox @ git+https://github.com/kubernetes-sigs/agent-sandbox.git@dbac66ecba5497ac493ca5e4ab5e0fcb1c945134#subdirectory=clients/python/agentic-sandbox-client", # For Agent Sandboxed Code Execution |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using a direct Git URL with a specific commit hash for a dependency can make dependency management and updates challenging. It ties the project to an immutable state of the external repository, which might not receive updates or security patches easily. Consider if there's a way to depend on a published package with version ranges, or if this is a temporary measure, document the long-term plan for this dependency.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a plan to transition this to a versioned release instead of a direct Git dependency to a specific commit?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, we are going to publish the python client to PyPI. This is an interim solution.
|
Hi @SHRUTI6991 , can you please fix the failing unit tests. |
|
Hi @SHRUTI6991 , looks like the unit test failures are not related to your code. |
|
@ryanaiagent I have addressed the comment. Ptal. |
|
Hi @SHRUTI6991 , Your PR has been received by the team and is currently under review. We will provide feedback as soon as we have an update to share. |
|
Hi @sasha-gitg , can you please review this. |
Description:
Link to an existing issue (if applicable):
#3263
This PR updates the
GkeCodeExecutorto add a new param calledexecutor_typewhich takes eitherjob/sandbox. CurrentlyGkeCodeExecutorcan only execute python code, so the changes made also focusses on executing ONLY python code via sandbox client.Testing Plan
Unit Tests:
Addition of new Unit tests to verify forking of code between
sandboxvsjob.Please include a summary of passed
pytestresults.-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
======================== 9 passed, 2 warnings in 2.72s =========================
Finished running tests!
Manual End-to-End (E2E) Tests:
Integration test by running a simple AI Agent: https://google.github.io/adk-docs/tools/google-cloud/gke-code-executor/ to write and execute Python code. The sandbox was connected via local tunnel for testing.
Output:
Checklist
Additional context
Add any other context or screenshots about the feature request here.